/**
 * 
 */
package src.model.gameObject.ability;

import src.model.gameObject.GameObject;
import src.model.gameObject.PlayerGameObject;
import src.model.gameWorld.PlayerLookupTable;
import src.model.gameWorld.Position;

/**
 * @author Tristan
 *
 */
public class Sneak extends ActiveAbility {

	/**
	 * @param pgo
	 * @param aType
	 */
	public Sneak(PlayerGameObject pgo, PlayerLookupTable playerLookup) {
		super(pgo, AbilityType.SNEAK, playerLookup);
	}

	public AbilityReturnResult execute(Position... position){
		PlayerGameObject owner = super.gameObject();
		owner.removeActiveAbility(this);
		owner.addActiveAbility(new UnSneak(super.gameObject(), super.playerLookupTable(), this));
		return AbilityReturnResult.SUCCESS;
	}

	public void newTurn(){
		super.modifyActionPoints(1);
	}
	
	@Override
	public boolean queueToMission(Position... position) {
		super.gameObject().enqueueAbility(this, position);
		return true;
	}
	
	public void destroySub(){
	}
}
